package com.zxtc.wh.pojo.resource;

import java.util.Date;

/**
 * 资源引用
 * 记录了资源的特征、基本信息以及实际保存方式和位置
 * 或者可以认为是记录的资源的具体内容及其特征
 * <p>
 * 2017年4月10日15:00:20
 */
public class ResourceReferencePojo {
    /**
     * 资源引用的本地唯一标识符
     */
    protected long resource_reference_id;

    /**
     * 资源的全局唯一标识符
     */

    protected String resource_reference_uuid;

    /**
     * 资源的存储类型，即{@see #resource_path}字段的具体类型（是URL？URI？数据库的记录？文件的路径？）
     */
    protected int resource_reference_storage_class;

    /**
     * 资源的访问索引（类似URL、URI）
     */
    protected String resource_path;

    /**
     * 资源文件名，上传到服务器的资源为了方便组织管理，可能会更改保存在服务器时的文件名，
     * 而下载到客户端时需要恢复到原有文件名，这个字段就是用于保存原有的文件名
     */
    protected String resource_file_name;

    /**
     * 资源大小，单位是字节
     */
    protected long resource_size;

    /**
     * 资源的哈希值,可以为空，可以用于避免相同资源的重复上传，建议使用sha 265算法的结果
     */
    protected String resource_hash;

    /**
     * 资源第一次保存到到服务器时的时间戳
     */
    protected Date resource_create_timestamp;
    
    /**
     * 资源的引用计数，原则上{RESOURCE}表的每个记录中都应该对所指向的资源引用的当前字段数值加1，
     * 反之如果某条记录的此字段为0，则这条记录表示资源的已经没有使用者
     */
    protected int resource_reference_count;

    public long getResource_reference_id() {
        return resource_reference_id;
    }

    public void setResource_reference_id(long resource_reference_id) {
        this.resource_reference_id = resource_reference_id;
    }

    public String getResource_reference_uuid() {
        return resource_reference_uuid;
    }

    public void setResource_reference_uuid(String resource_reference_uuid) {
        this.resource_reference_uuid = resource_reference_uuid;
    }

    public int getResource_reference_storage_class() {
        return resource_reference_storage_class;
    }

    public void setResource_reference_storage_class(int resource_reference_storage_class) {
        this.resource_reference_storage_class = resource_reference_storage_class;
    }

    public String getResource_path() {
        return resource_path;
    }

    public void setResource_path(String resource_path) {
        this.resource_path = resource_path;
    }

    public String getResource_file_name() {
        return resource_file_name;
    }

    public void setResource_file_name(String resource_file_name) {
        this.resource_file_name = resource_file_name;
    }

    public long getResource_size() {
        return resource_size;
    }

    public void setResource_size(long resource_size) {
        this.resource_size = resource_size;
    }

    public String getResource_hash() {
        return resource_hash;
    }

    public void setResource_hash(String resource_hash) {
        this.resource_hash = resource_hash;
    }

    public Date getResource_create_timestamp() {
        return resource_create_timestamp;
    }

    public void setResource_create_timestamp(Date resource_create_timestamp) {
        this.resource_create_timestamp = resource_create_timestamp;
    }

    public int getResource_reference_count() {
        return resource_reference_count;
    }

    public void setResource_reference_count(int resource_reference_count) {
        this.resource_reference_count = resource_reference_count;
    }
}
